<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:f="http://java.sun.com/jsf/core">

    <ui:composition template="/templateDefault.xhtml">
        <ui:define name="title"><h:outputText value="#{msg.header_cliente_lbl}"/></ui:define>
        <ui:define name="content">
            <rich:panel header="#{msg.header_produto_lbl}">
                <h:form id="editarEntidadeForm" prependId="false">

                    <rich:extendedDataTable id="itensRegistoTable" noDataLabel="#{msg.sem_registo}" var="itensVar" style="width: 1050px; height: 300px" 
                                            value="#{produtoMB.todosComLigacao}" selectionMode="multiple" selection="#{produtoMB.selection}">

                        <a4j:ajax execute="itensRegistoTable :editPane" event="selectionchange" listener="#{produtoMB.selectionListener}" 
                                  render="id nome comboPai comboFilho comboPai1 comboFilho1 fabricante cor tamanho numSerie dataRegisto detalharRegistoPanel actualizarRegistoPanel :editPane"/>

                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="#{msg.campo_id}"/>
                            </f:facet>
                            <h:outputText value="#{itensVar.id}"/>
                        </rich:column>
                        <rich:column width="200px">
                            <f:facet name="header">
                                <h:outputText value="#{msg.campo_descricao}"/>
                            </f:facet>
                            <h:outputText value="#{itensVar.descricao}"/>
                        </rich:column>
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="#{msg.campo_marca}"/>
                            </f:facet>
                            <h:outputText value="#{itensVar.marca}"/>
                        </rich:column>
                        <rich:column width="122px">
                            <f:facet name="header">
                                <h:outputText value="#{msg.campo_modelo}"/>
                            </f:facet>
                            <h:outputText value="#{itensVar.modelo}"/>
                        </rich:column>
                        <rich:column width="170px">
                            <f:facet name="header">
                                <h:outputText value="#{msg.campo_tipo_produto}"/>
                            </f:facet>
                            <h:outputText value="#{itensVar.tipo}"/>
                        </rich:column>
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="#{msg.campo_tamanho}"/>
                            </f:facet>
                            <h:outputText value="#{itensVar.tamanho}"/>
                        </rich:column>
                        <rich:column>
                            <f:facet name="header">
                                <h:outputText value="#{msg.campo_cor}"/>
                            </f:facet>
                            <h:outputText value="#{itensVar.cor}"/>
                        </rich:column>
                        <rich:column width="150px">
                            <f:facet name="header">
                                <h:outputText value="#{msg.campo_num_serie}"/>
                            </f:facet>
                            <h:outputText value="#{itensVar.numSerie}"/>
                        </rich:column>
                    </rich:extendedDataTable>
                    
                    <div align="center" style="width: 100%">
                        <a4j:commandButton value="#{msg.botao_eliminar_lbl}" onclick="#{rich:component('confirmPane')}.show();" execute="itensRegistoTable" 
                                           image="/imagens/delete32x32.png" title="#{msg.botao_eliminar_lbl}"/>

                        <a4j:commandButton value="#{msg.botao_actualizar_lbl}" execute="itensRegistoTable" title="#{msg.botao_editar}" onclick="#{rich:component('editPane')}.show();" 
                                           image="/imagens/edit32x32.png"/>
                        <a4j:commandButton value="#{msg.botao_detalhe}" execute="itensRegistoTable" onclick="#{rich:component('detalhePane')}.show();" 
                                           title="#{msg.botao_detalhe}" image="/imagens/info032x32.png"/>
                    </div>
                </h:form>
                
                <!--JANELA PARA ACTUALIZAR OS DADOS DO REGISTO-->
                <rich:popupPanel id="editPane" autosized="true" header="#{msg.header_actualizar_lbl}">
                    <h:form prependId="false">
                        <h:panelGroup id="actualizarRegistoPanel">
                            <h:panelGrid columns="2" id="formGrid">
                                <h:outputLabel for="id" value="#{msg.campo_id}"/>
                                <h:inputText id="id" value="#{produtoMB.modeloTemp.id}" size="44"/>
                                <h:outputLabel for="nome" value="#{msg.campo_descricao}"/>
                                <h:inputText id="nome" value="#{produtoMB.modeloTemp.descricao}" size="44"/>
                                <h:outputLabel for="comboPai" value="#{msg.campo_marca}"/>
                                <h:selectOneMenu style="width: 247px" id="comboPai" value="#{produtoMB.modeloProdutoMB.modelo.idMarca}" title="Marcas de Produtos">
                                    <f:ajax execute="@this" immediate="true" render="comboFilho"/>
                                    <f:selectItems value="#{marcaProdutoMB.todosCombo}" var="varItem" itemValue="#{varItem.id}" itemLabel="#{varItem.nome}"/>
                                </h:selectOneMenu>
                                <h:outputLabel for="comboFilho" value="#{msg.campo_modelo}"/>
                                <h:selectOneMenu style="width: 247px" id="comboFilho" value="#{produtoMB.modeloTemp.idModelo}" title="Modelos de Produtos">
                                    <f:selectItems value="#{produtoMB.modeloProdutoMB.bySelectedMarca}" var="varItem" itemValue="#{varItem.id}" itemLabel="#{varItem.nome}"/>
                                </h:selectOneMenu>
                                <h:outputLabel for="comboPai1" value="#{msg.campo_categoria_produto}"/>
                                <h:selectOneMenu style="width: 247px" id="comboPai1" value="#{produtoMB.tipoProdutoMB.modelo.idCategoria}" title="Categoria de Produtos">
                                    <f:ajax execute="@this" immediate="true" render="comboFilho1"/>
                                    <f:selectItems value="#{categoriaProdutoMB.todosCombo}" var="varItem" itemValue="#{varItem.id}" itemLabel="#{varItem.nome}"/>
                                </h:selectOneMenu>
                                <h:outputLabel for="comboFilho1" value="#{msg.campo_tipo_produto}"/>
                                <h:selectOneMenu style="width: 247px" id="comboFilho1" value="#{produtoMB.modeloTemp.idTipo}" title="Tipos de Produtos">
                                    <f:selectItems value="#{produtoMB.tipoProdutoMB.bySelectedCategoria}" var="varItem" itemValue="#{varItem.id}" itemLabel="#{varItem.nome}"/>
                                </h:selectOneMenu>
                                <h:outputLabel for="fabricante" value="#{msg.campo_fabricante}"/>
                                <h:selectOneMenu style="width: 247px" id="fabricante" value="#{produtoMB.modeloTemp.idFabricante}" title="Fabricantes de Produtos">
                                    <f:selectItems value="#{fabricanteProdutoMB.todosCombo}" var="varItem" itemValue="#{varItem.id}" itemLabel="#{varItem.nome}"/>
                                </h:selectOneMenu>
                                <h:outputLabel for="cor" value="#{msg.campo_cor}"/>
                                <h:inputText id="cor" value="#{produtoMB.modeloTemp.cor}" size="44"/>
                                <h:outputLabel for="tamanho" value="#{msg.campo_tamanho}"/>
                                <h:inputText id="tamanho" value="#{produtoMB.modeloTemp.tamanho}" size="44"/>
                                <h:outputLabel for="numSerie" value="#{msg.campo_num_serie}"/>
                                <h:inputText id="numSerie" value="#{produtoMB.modeloTemp.numSerie}" size="44"/>
                                <h:outputLabel for="dataRegisto" value="#{msg.campo_data_registo}"/>
                                <h:inputText id="dataRegisto" value="#{produtoMB.modeloTemp.dataRegisto}" size="44" readonly="true">
                                    <f:convertDateTime dateStyle="short" type="date" pattern="dd-MM-yyyy"/>
                                </h:inputText>
                            </h:panelGrid>
                        </h:panelGroup>
                        <div align="center" style="width: 100%">
                            <a4j:commandButton title="#{msg.botao_actualizar_lbl}" action="#{produtoMB.actulizar}" image="/imagens/save32x32.png"
                                               execute="@form" render="itensRegistoTable" oncomplete="#{rich:component('editPane')}.hide();"/>
                            <h:commandButton title="#{msg.botao_sair_lbl}" action="#{produtoMB.novoModelo}" image="/imagens/sair32x32.png"/>
                        </div>
                    </h:form>
                </rich:popupPanel>
                <!--FIM DA JANELA PARA ACTUALIZAR OS DADOS DO REGISTO-->
<!--JANELA DE DETALHE DOS DADOS DO REGISTO-->
<rich:popupPanel id="detalhePane" autosized="true" header="#{msg.header_detalhe_lbl}">
    <h:form prependId="false">
                        <h:panelGroup id="detalharRegistoPanel">
                            <h:panelGrid columns="2" id="formGridDetalhe">
                                <h:outputLabel for="idDetalhe" value="#{msg.campo_id}"/>
                                <h:inputText id="idDetalhe" value="#{produtoMB.modeloTemp.id}" size="44" readonly="true"/>
                                <h:outputLabel for="nomeDetalhe" value="#{msg.campo_descricao}"/>
                                <h:inputText id="nomeDetalhe" value="#{produtoMB.modeloTemp.descricao}" size="44" readonly="true"/>
                                <h:outputLabel for="comboPaiDetalhe" value="#{msg.campo_marca}"/>
                                <h:inputText id="comboPaiDetalhe" value="#{produtoMB.modeloTemp.marca}" size="44" readonly="true"/>
                                <h:outputLabel for="comboFilhoDetalhe" value="#{msg.campo_modelo}"/>
                                <h:inputText id="comboFilhoDetalhe" value="#{produtoMB.modeloTemp.modelo}" size="44" readonly="true"/>
                                <h:outputLabel for="comboPai1Detalhe" value="#{msg.campo_categoria_produto}"/>
                                <h:inputText id="comboPai1Detalhe" value="#{produtoMB.modeloTemp.categoria}" size="44" readonly="true"/>
                                <h:outputLabel for="comboFilho1Detalhe" value="#{msg.campo_tipo_produto}"/>
                                <h:inputText id="comboFilho1Detalhe" value="#{produtoMB.modeloTemp.tipo}" size="44" readonly="true"/>
                                <h:outputLabel for="fabricanteDetalhe" value="#{msg.campo_fabricante}"/>
                                <h:inputText id="fabricanteDetalhe" value="#{produtoMB.modeloTemp.fabricante}" size="44" readonly="true"/>
                                <h:outputLabel for="corDetalhe" value="#{msg.campo_cor}"/>
                                <h:inputText id="corDetalhe" value="#{produtoMB.modeloTemp.cor}" size="44" readonly="true"/>
                                <h:outputLabel for="tamanhoDetalhe" value="#{msg.campo_tamanho}"/>
                                <h:inputText id="tamanhoDetalhe" value="#{produtoMB.modeloTemp.tamanho}" size="44" readonly="true"/>
                                <h:outputLabel for="numSerieDetalhe" value="#{msg.campo_num_serie}"/>
                                <h:inputText id="numSerieDetalhe" value="#{produtoMB.modeloTemp.numSerie}" size="44" readonly="true"/>
                                <h:outputLabel for="dataRegistoDetalhe" value="#{msg.campo_data_registo}"/>
                                <h:inputText id="dataRegistoDetalhe" value="#{produtoMB.modeloTemp.dataRegisto}" size="44" readonly="true">
                                    <f:convertDateTime dateStyle="short" type="date" pattern="dd-MM-yyyy"/>
                                </h:inputText>
                            </h:panelGrid>
                        </h:panelGroup>
                        <div align="center" style="width: 100%">
                            <h:commandButton title="#{msg.botao_sair_lbl}" action="#{produtoMB.novoModelo}" 
                                               onclick="#{rich:component('detalhePane')}.hide();" image="/imagens/sair32x32.png"/>
                        </div>
                    </h:form>
                </rich:popupPanel>
                <!--FIM DA JANELA DE DETALHE DOS DADOS DO REGISTO-->
                <!--PAINEL DE COMFIRMAÇÃO DE ELIMINAÇÃO DE REGISTO-->
                <rich:popupPanel id="confirmPane" autosized="true" header="#{msg.header_eliminar_lbl}">
                    #{msg.delete_confirma}
                    <h:commandButton value="#{msg.botao_nao}" onclick="#{rich:component('confirmPane')}.hide(); return false;" />
                    <a4j:commandButton value="#{msg.botao_sim}" execute="itensRegistoTable" render="itensRegistoTable" action="#{produtoMB.eliminar}" 
                                       oncomplete="#{rich:component('confirmPane')}.hide();"/>
                </rich:popupPanel>
                <!--FIM DO PAINEL DE COMFIRMAÇÃO DE ELIMINAÇÃO DE REGISTO-->
                <a4j:outputPanel id="res" style="width: 500px" ajaxRendered="true">
                    <rich:messages showDetail="true" id="msgs"/>
                </a4j:outputPanel>
            </rich:panel>
        </ui:define>
    </ui:composition>
</html>
